<script setup>
import { ref, reactive, onMounted, toRefs } from "vue";
import modal from "@/plugins/modal";
import { getRouters } from "@/api/menu";
const current = ref(0);
const swiperDotIndex = ref(0);
const data = ref([
  {
    image: "/static/images/banner/banner01.jpg",
  },
  {
    image: "/static/images/banner/banner02.jpg",
  },
  {
    image: "/static/images/banner/banner03.jpg",
  },
]);

function changeSwiper(e) {
  current.value = e.detail.current;
}

const menus = reactive({
  routers: {},
});

const { routers } = toRefs(menus);

//获取全部的菜单项
getRouters().then((res) => {
  if (res.code === 200) {
    //获取成功
    routers.value = res.data;
    console.log(routers.value);
  }
});

import tab from '@/plugins/tab' // 建议使用tab进行页面跳转，理由：便于在跳转前处理其他事务
//点击前往对应页面
const onClickNavigateTo = (url) => {
    console.log("🚀 ~ file: work.vue:41 ~ onClickNavigateTo ~ url:", url)
    tab.navigateTo(url)
}
</script>

<template>
  <view class="work-container">
    <!-- 轮播图 -->
    <uni-swiper-dot
      class="uni-swiper-dot-box"
      :info="data"
      :current="current"
      field="content"
    >
      <swiper
        class="swiper-box"
        :current="swiperDotIndex"
        @change="changeSwiper"
      >
        <swiper-item v-for="(item, index) in data" :key="index">
          <view class="swiper-item">
            <image :src="item.image" mode="aspectFill" :draggable="false" />
          </view>
        </swiper-item>
      </swiper>
    </uni-swiper-dot>

    <!-- 根据routes的值渲染 -->
    <uni-section v-for="r in routers" :title="r.meta.title" type="line">
      <view class="grid-body">
        <uni-grid :column="4" :showBorder="false">
          <uni-grid-item v-for="child in r.children" @click="onClickNavigateTo(child.component)">
            <view class="grid-item-box">
              <!-- <uni-icons :type="child.meta.uniIcon" size="30"></uni-icons> -->
              <svg-icon :icon-class="child.meta && child.meta.icon" />
              <text class="text">{{ child.meta.title }}</text>
            </view>
          </uni-grid-item>
        </uni-grid>
      </view>
    </uni-section>
  </view>
</template>

<style lang="scss">
/* #ifndef APP-NVUE */
page {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  background-color: #fff;
  min-height: 100%;
  height: auto;
}

view {
  font-size: 14px;
  line-height: inherit;
}

/* #endif */

.text {
  text-align: center;
  font-size: 26rpx;
  margin-top: 10rpx;
}

.grid-item-box {
  flex: 1;
  /* #ifndef APP-NVUE */
  display: flex;
  /* #endif */
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 15px 0;
}

.uni-margin-wrap {
  width: 690rpx;
  width: 100%;
}

.swiper {
  height: 300rpx;
}

.swiper-box {
  height: 150px;
}

.swiper-item {
  /* #ifndef APP-NVUE */
  display: flex;
  /* #endif */
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #fff;
  height: 300rpx;
  line-height: 300rpx;
}

@media screen and (min-width: 500px) {
  .uni-swiper-dot-box {
    width: 400px;
    /* #ifndef APP-NVUE */
    margin: 0 auto;
    /* #endif */
    margin-top: 8px;
  }

  .image {
    width: 100%;
  }
}
</style>
